#include "widget.h"
#include "ui_widget.h"
#include <QFile>
#include <QFileDialog>
#include <QTextCodec>
#include <QFileInfo>
#include <QDebug>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    //写文件
    QFile file("F:\\test20.txt");
    file.open(QIODevice::WriteOnly);
    file.write("hello");
    file.close();
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this,"打开一个文件","","ALL(*.*)");
    //对fileName做判断，如果没有选择文件，那么就是一个空串
    if(fileName.isEmpty())
    {
        return;
    }
    else {
        //选择了文件，将文件名显示到lineEdit
        this->ui->lineEdit->setText(fileName);
    }

    //使用qfile来读取文件
    QFile file(fileName);
    //打开文件  以只读方式打开
    file.open(QIODevice::ReadOnly);

    //读取文件内容
    //将所有内容全部读取出来
    //QByteArray arry = file.readAll();
    //单行读取
    QByteArray arry;
    do{
        arry += file.readLine();
    }while(!file.atEnd());

    //使用gbk编码
    QTextCodec *codec = QTextCodec::codecForName("gbk");

    //将arry转换成QString
    QString content = codec->toUnicode(arry);

    //输出到edit上
    this->ui->plainTextEdit->setPlainText(content);

    //获取文件信息
    QFileInfo info(fileName);
    qDebug()<<"文件全名："<<info.fileName();
    qDebug()<<"baseName："<<info.baseName();
    qDebug()<<"路径："<<info.path();
    qDebug()<<"文件是否为目录:"<<info.isDir();
    //关闭文件
    file.close();
}
